<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 1.map和weakMap的区别是什么：
        // map是强引用
        // weakMap是弱引用
        // 下面一段立即执行函数 如果执行完毕，访问map的key和weakMap，后者访问不到，垃圾回收机制能够会删掉weakMap的值，这段代码一执行完毕，就没有用到foo的键的地方了。但是map的key仍旧能够访问的到；map容易造成内存泄露
        const map = new Map()
        const bucket = new WeakMap();
        let foo = { name: 123 }
        let bar = { age: 21 };
        ; (function () {
            let foo = { name: 123 }
            let bar = { age: 21 }
            map.set(foo, 1)
            bucket.set(bar, 2)
        })()
        console.log(map);
        console.log(bucket);
        // console.log(bucket.get(bar)); //会报错
    </script>
</body>

</html>